The rapid move from the dominant personal computing model to the widespread use of mobile computing has led to a proliferation of operating environments—combinations of processor types, operating systems, and hardware features. Due to the need to minimize memory usage and maximize battery life, these operating environments necessarily face strict limitations on the size of the operating system, and therefore features that may be included in the operating system. One of the neglected areas of many of these operating systems is the security of interprocess communications.
Software programs installed on a computing device may provide a service that may be used by other software programs. The operating system executing on the device may also provide services. Typically, when an application is installed, the user is presented with a list of services requested by the application, and the user is asked to grant permission for the application to use the enumerated services. Subsequently, either the client application or the service-providing application may use data in unsecure or malicious ways, whether by design of the software developer or under control of a malware infection. Applications may use the interprocess communication system provided by the device's operating system to transmit sensitive data from the device and/or to perform other malicious activities. Accordingly, the instant disclosure identifies and addresses a need for additional and improved systems and methods for filtering interprocess communications.